object Form8: TForm8
  Left = 570
  Top = 503
  BorderStyle = bsDialog
  Caption = 'Step 7'
  ClientHeight = 250
  ClientWidth = 571
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  Position = poScreenCenter
  OnClose = FormClose
  OnCloseQuery = FormCloseQuery
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 40
    Top = 232
    Width = 18
    Height = 13
    Caption = '100'
  end
  object Label2: TLabel
    Left = 0
    Top = 232
    Width = 34
    Height = 13
    Caption = 'Health:'
  end
  object SpeedButton1: TSpeedButton
    Left = 544
    Top = 232
    Width = 25
    Height = 17
    Caption = 'Skip'
    Flat = True
    OnClick = SpeedButton1Click
  end
  object Memo1: TMemo
    Left = 0
    Top = 0
    Width = 571
    Height = 185
    Align = alTop
    Color = clBtnFace
    Lines.Strings = (
      
        'Code injection is a technique where one injects a piece of code ' +
        'into the target process, and then reroute the '
      'execution of code to go through your own written code'
      ''
      
        'In this tutorial you'#39'll have a health value and a button that wi' +
        'll decrease your health with 1 each time you click it.'
      
        'Your task is to use code injection to increase the value of your' +
        ' health with 2 every time it is clicked'
      ''
      'Start with finding the address and then find what writes to it.'
      
        'then when you'#39've found the code that decreases it browse to that' +
        ' address in the disassembler, and open the auto '
      'assembler window (ctrl+a)'
      
        'There click on template and then code injection, and give it the' +
        ' address that decreases health (If it isn'#39't already filled '
      'in correctly)'
      
        'That will generate a basic auto assembler injection framework yo' +
        'u can use for your code.'
      ''
      
        'Notice the alloc, that will allocate a block of memory for your ' +
        'code cave, in the past, in the pre windows 2000 '
      
        'systems, people had to find code caves in the memory(regions of ' +
        'memory unused by the game), but that'#39's luckily a '
      
        'thing of the past since windows 2000, and will these days cause ' +
        'errors when trying to be used, due to SP2 of XP '
      'and the NX bit of new CPU'#39's'
      ''
      
        'Also notice the line newmem: and originalcode: and the text "Pla' +
        'ce your code here"'
      
        'As you guessed it, write your code here that will increase the  ' +
        'health with 2.'
      
        'a usefull assembler instruction in this case is the "ADD instruc' +
        'tion"'
      'here are a few examples:'
      '"ADD [00901234],9" to increase the address at 00901234 with 9'
      
        '"ADD [ESP+4],9" to increase the address pointed to by ESP+4 with' +
        ' 9'
      
        'In this case, you'#39'll have to use the same thing between the brac' +
        'kets as the original code has that decreases your '
      'health'
      ''
      'Notice:'
      
        'It is recommended to delete the line that decreases your health ' +
        'from the original code section, else you'#39'll have to '
      
        'increase your health with 3 (you increase with 3, the original c' +
        'ode decreases with 1, so the end result is increase '
      
        'with 2), which might become confusing. But it'#39's all up to you an' +
        'd your programming.'
      ''
      'Notice 2:'
      
        'In some games the original code can exist out of multiple instru' +
        'ctions, and sometimes, not always, it might happen '
      
        'that a code at another place jumps into your jump instruction en' +
        'd will then cause unknown behavior. If that '
      
        'happens, you should usually look near that instruction and see t' +
        'he jumps and fix it, or perhaps even choose to use a '
      
        'different address to do the code injection from. As long as you'#39 +
        're able to figure out the address to change from inside '
      'your injected code.')
    ReadOnly = True
    ScrollBars = ssVertical
    TabOrder = 0
  end
  object Button2: TButton
    Left = 248
    Top = 192
    Width = 75
    Height = 25
    Caption = 'Next'
    Enabled = False
    TabOrder = 1
    OnClick = Button2Click
  end
  object Button1: TButton
    Left = 64
    Top = 230
    Width = 41
    Height = 17
    Caption = 'Hit me'
    TabOrder = 2
    OnClick = Button1Click
  end
end
